package com.sunyw.xyz.model;

import com.alibaba.fastjson.annotation.JSONField;
import com.beat.chatgpt.provider.openai.dto.completions.ChatMessages;
import lombok.*;
import lombok.extern.slf4j.Slf4j;

import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
import java.util.Map;

/**
 * 描述： CHAT问题类
 *
 * @author www.beatchat.cn
 *  2023-02-11
 */
@Data
public class ChatCompletionDTO implements Serializable {

    /**
     * 提问消息内容
     */
    private List<ChatMessagesResponseDTO> messages;

    /**
     * 最大支持4096
     */
    private Integer maxTokens = null;
    /**
     * 使用什么取样温度，0到2之间。较高的值(如0.8)将使输出更加随机，而较低的值(如0.2)将使输出更加集中和确定。
     * <p>
     * We generally recommend altering this or but not both.top_p
     */
    private Double temperature=null;

    /**
     * 使用温度采样的替代方法称为核心采样，其中模型考虑具有top_p概率质量的令牌的结果。因此，0.1 意味着只考虑包含前 10% 概率质量的代币。
     * <p>
     * 我们通常建议更改此设置，但不要同时更改两者。temperature
     */
    private Integer topP;

    /**
     * 为每个提示生成的完成次数。
     */

    private Integer n;

    private boolean stream = false;

    private List<String> stop = Arrays.asList("#");

    private Double presencePenalty=null;

    private Double frequencyPenalty=null;

    private Map logitBias;

    private String user;
}


